#pragma once

extern "C" {
#include <tdikrnl.h>
}

NTSTATUS TCPClose(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS TCPCreate(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS TCPConnect(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS TCPSend(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS TCPRecive(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS UDPConnect(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS UDPSendDatagram(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);
NTSTATUS UDPReciveDatagram(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp, PIO_STACK_LOCATION Irpsp);

ULONG ntohl(ULONG netLong);
USHORT ntohs(USHORT netShort);